package com.ww.springboot.boot.baseTest.修饰符;

/**
 * 描述：
 *
 * @author 🧑 ‍wanwei
 * @since 2023-01-14 16:43
 */
public class Static1 {

    /**
     * 父类静态方法 会优先于子类初始化
     *
     * class 只有在被使用时才会初始化
     * @param args
     */
    public static void main(String[] args) {
        //不同时刻调用会有不一样的结果 先调父类时 子类还没有初始化 此时父类的值不会被改变
        System.out.println(Sub.A);
        System.out.println(Sub.B);
        //不同时刻调用会有不一样的结果
        System.out.println(Sub.A);
    }



    static class Parent {
        static {
            A = 2;
        }
        public static int A = 1;
        static {
            A = 3;
        }
    }

    static class Sub extends Parent {
        public static int B = A;
        static {
            A = 4;
        }
    }

}
